from PublicReference.base import *


class 极诣·剑魂主动技能(主动技能):
    hit数 = 0  # 太刀时所需参数，计算期望刺伤

    def 额外刺伤层数(self, 武器类型):
        return 0

    def 穿云刺数量(self, 武器类型):
        return 0


class 极诣·剑魂流系技能(主动技能):
    hit数 = 0

    def 等效CD(self, 武器类型, 输出类型):
        return round(self.CD / self.恢复, 1)

    def 额外刺伤层数(self, 武器类型):
        return 0

    def 穿云刺数量(self, 武器类型):
        return 0


class 极诣·剑魂技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    关联技能 = ['里鬼剑术', '空中连斩']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 极诣·剑魂技能1(极诣·剑魂主动技能):
    hit数 = 8
    名称 = '里鬼剑术'
    备注 = '(一轮，TP为基础精通)'
    所在等级 = 15
    等级上限 = 11
    基础等级 = 1
    基础 = 0.97
    成长 = 0.03
    CD = 1.0
    TP成长 = 0.1
    TP上限 = 3
    基础百分比 = {'短剑': 1004.68, '光剑': 890.19,
             '巨剑': 1241.95, '钝器': 1225.24, '太刀': 1197.49}
    data = {'短剑': 3, '光剑': 3, '巨剑': 2, '钝器': 4, '太刀': 4}
    # 巨剑不蓄力441.19

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            return self.基础百分比[武器类型] * (self.基础 + self.成长 * self.等级) * (1 + self.TP成长 * self.TP等级) * self.倍率

    def 穿云刺数量(self, 武器类型):
        return self.data[武器类型]


class 极诣·剑魂技能2(被动技能):
    名称 = '武器奥义'
    所在等级 = 15
    等级上限 = 30
    基础等级 = 20
    关联技能 = ['无']


class 极诣·剑魂技能3(被动技能):
    名称 = '光剑掌握'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['无']
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['极鬼剑术暴风式','万剑归宗(终结)','万剑归宗(穿云刺)','万剑极诣开天斩']

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1.0 - 0.01 * self.等级, 5)


class 极诣·剑魂技能4(极诣·剑魂主动技能):
    名称 = '流心狂'
    所在等级 = 30
    等级上限 = 20
    基础等级 = 10
    是否有伤害 = 0
    关联技能 = ['流心刺', '流心跃', '流心升']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.20 + 0.02 * self.等级, 5)


class 极诣·剑魂技能5(被动技能):
    名称 = '无我剑气'
    所在等级 = 20
    等级上限 = 15
    基础等级 = 5

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00 + 0.02 * self.等级, 5)


class 极诣·剑魂技能6(极诣·剑魂流系技能):
    名称 = '流心刺'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    数据 = [int(x*1.162) for x in [0, 1111, 1223, 1336, 1449, 1562, 1675, 1787, 1900, 2014, 2127, 2239, 2352, 2465, 2578, 2691, 2803, 2916, 3029, 3142, 3254, 3367, 3479, 3592, 3705, 3818, 3931, 4044, 4156, 4268, 4381, 4494, 4607, 4720, 4833,4946, 5057, 5170, 5283, 5396, 5509, 5622, 5734, 5846, 5959, 6072, 6185, 6298, 6411, 6523, 6636, 6748, 6861, 6974, 7087, 7200, 7312, 7425, 7538, 7650, 7763, 7876, 7988, 8101, 8214, 8327, 8440, 8552, 8665, 8777, 8890]]
    TP成长 = 0.10
    TP上限 = 5
    CD = 5.0

    武器倍率 = {'短剑': 2 + 1, '光剑': 4 * 0.63, '巨剑': 2 +
            1, '钝器': 2 * 1.25, '太刀': 4 * 0.63}

    def 等效百分比(self, 武器类型):
        return self.武器倍率[武器类型] * self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = 4
    刺伤几率 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
            54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87]
    可附加的刺伤数量 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    def 穿云刺数量(self, 武器类型):
        return 2


class 极诣·剑魂技能7(极诣·剑魂流系技能):
    名称 = '流心跃'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    数据 = [int(x*1.159) for x in [0, 4079, 4493, 4907, 5321, 5735, 6149, 6563, 6977, 7391, 7805, 8219, 8633, 9047, 9461, 9876, 10290, 10704, 11117, 11531, 11945, 12359, 12773, 13187, 13601, 14015, 14429, 14841, 15256, 15670, 16083, 16498, 16912, 17325, 17740, 18154, 18566,
          18981, 19394, 19809, 20224, 20637, 21051, 21466, 21879, 22292, 22707, 23120, 23534, 23948, 24362, 24776, 25190, 25604, 26018, 26432, 26846, 27260, 27676, 28089, 28503, 28918, 29330, 29744, 30158, 30572, 30986, 31400, 31814, 32228, 32642]]
    TP成长 = 0.10
    TP上限 = 5
    CD = 7.0

    武器倍率 = {'短剑': 2 * 0.5, '光剑': 1, '巨剑': 1, '钝器': 1, '太刀': 2 * 0.5}

    # 钝器冲击波占比 0.271783561  钝器空中释放20%加成

    def 等效百分比(self, 武器类型):
        return self.武器倍率[武器类型] * self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = 2
    刺伤几率 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
            71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 100, 100, 100, 100]
    可附加的刺伤数量 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
                2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    def 穿云刺数量(self, 武器类型):
        return 2


class 极诣·剑魂技能8(极诣·剑魂流系技能):
    名称 = '流心升'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    数据 = [int(x*1.162) for x in [0, 2789, 3071, 3357, 3639, 3922, 4205, 4488, 4771, 5053, 5335, 5621, 5904, 6186, 6469, 6752, 7036, 7317, 7602, 7886, 8168, 8450, 8735, 9016, 9300, 9583, 9867, 10150, 10432, 10714, 10999, 11282, 11564, 11847, 12131, 12414, 12696,
          12978, 13264, 13546, 13828, 14111, 14395, 14679, 14962, 15244, 15528, 15810, 16092, 16375, 16659, 16943, 17226, 17509, 17792, 18074, 18356, 18643, 18925, 19207, 19490, 19773, 20056, 20340, 20622, 20907, 21189, 21471, 21754, 22037, 22321]]
    TP成长 = 0.10
    TP上限 = 5
    CD = 9.0

    武器倍率 = {'短剑': 1 + 1.1, '光剑': 3 * 0.8,
            '巨剑': 1 + 1.1, '钝器': 1 + 1.1, '太刀': 3 * 0.8}

    def 等效百分比(self, 武器类型):
        return self.武器倍率[武器类型] * self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = 3
    刺伤几率 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    可附加的刺伤数量 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
                3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    def 穿云刺数量(self, 武器类型):
        return 2


class 极诣·剑魂技能9(极诣·剑魂主动技能):
    名称 = '破军升龙击'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    data1 = [int(x*1.162) for x in [0, 1253, 1380, 1508, 1635, 1761, 1889, 2016, 2142, 2270, 2397, 2525, 2651, 2778, 2906, 3033, 3160, 3287, 3414, 3542, 3669, 3797, 3924, 4050, 4178, 4305, 4432, 4559, 4687, 4814, 4940, 5068, 5195, 5324, 5447,5576, 5705, 5831, 5959, 6086, 6213, 6340, 6468, 6596, 6723, 6850, 6977, 7104, 7231, 7358, 7486, 7613, 7738, 7867, 7994, 8119, 8246, 8374, 8501, 8630, 8758, 8885, 9013, 9137, 9265, 9394, 9518, 9646, 9773, 9901, 10027]]
    data2 = [int(x*1.162) for x in [0, 1935, 2130, 2325, 2522, 2719, 2915, 3109, 3306, 3503, 3699, 3897, 4093, 4287, 4486, 4681, 4877, 5074, 5270, 5465, 5661, 5858, 6054, 6251, 6445, 6644, 6839, 7036, 7233, 7429, 7623, 7820, 8017, 8213, 8410, 8604, 8801,8998, 9195, 9391, 9588, 9784, 9979, 10175, 10372, 10568, 10764, 10959, 11156, 11352, 11550, 11747, 11940, 12137, 12334, 12531, 12727, 12921, 13118, 13315, 13512, 13708, 13904, 14099, 14296, 14492, 14689, 14886, 15082, 15277, 15474]]
    TP成长 = 0.10
    TP上限 = 5
    CD = 10.0

    冲撞倍率 = {'短剑': 2, '光剑': 4 * 0.89, '巨剑': 2, '钝器': 2, '太刀': 2}
    上斩倍率 = {'短剑': 1, '光剑': 1, '巨剑': 2, '钝器': 2, '太刀': 2}

    def 等效百分比(self, 武器类型):
        return (self.冲撞倍率[武器类型] * self.data1[self.等级] + self.上斩倍率[武器类型] * self.data2[self.等级]) * (1 + self.TP成长 * self.TP等级) * self.倍率 * (1.45 if 武器类型 == '短剑' else 1.0)

    # 极神剑术被动相关,短剑影响
    def 极神剑术占比(self, 武器类型):
        return self.data1[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率 * (1.45 if 武器类型 == '短剑' else 1.0) / self.等效百分比(武器类型)

    hit数 = 3
    刺伤几率 = [0, 0, 0, 0, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620,
            630, 640, 650, 660, 670, 680, 690, 700, 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, 910, 920, 930, 940, 950, 960, 970]
    可附加的刺伤数量 = [0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
                2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 1000 * self.可附加的刺伤数量[self.等级]


class 极诣·剑魂技能10(极诣·剑魂主动技能):
    名称 = '拔刀斩'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    数据 = [int(x*1.162) for x in [0, 6189, 6819, 7447, 8075, 8702, 9329, 9960, 10588, 11215, 11844, 12471, 13099, 13727, 14355, 14982, 15611, 16238, 16866, 17496, 18123, 18752, 19379, 20007, 20637, 21265, 21893, 22520, 23148, 23775, 24404, 25031, 25660, 26289, 26916, 27545,28172, 28800, 29429, 30056, 30683, 31313, 31941, 32569, 33198, 33826, 34453, 35082, 35708, 36338, 36965, 37593, 38221, 38849, 39478, 40106, 40734, 41361, 41991, 42617, 43246, 43875, 44502, 45130, 45758, 46386, 47016, 47643, 48270, 48899, 49526]]
    TP成长 = 0.10
    TP上限 = 5
    CD = 15.0
    武器倍率 = {'短剑': 1.4, '光剑': 1.3, '巨剑': 1.3, '钝器': 1.3, '太刀': 1.25}

    def 等效百分比(self, 武器类型):
        return self.武器倍率[武器类型] * self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率

    # 拔刀奥义
    # 准备动作时间 -30%
    # 短剑 : 剑气的拔刀斩攻击力比率 +28%
    # 太刀 : 追加攻击的拔刀斩攻击力比率 +25%
    # 钝器 : 追加攻击的拔刀斩攻击力比率 +26%
    # 巨剑 : [巨剑精通]最大蓄气时[拔刀斩]攻击力增加量 +26%
    # 光剑 : 追加攻击的拔刀斩攻击力比率 +26%
    # 攻击成功时发动[神影手] (一次[拔刀斩]最多发动1次)
    # 攻击范围 +20%
    # 攻击力 +5%
    是否有护石 = 1
    触发神影手 = 0
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.武器倍率 = {'短剑': 1.4 + 0.28, '光剑': 1.3 + 0.26,
                         '巨剑': 1.3 + 0.26, '钝器': 1.3 + 0.26, '太刀': 1.25 + 0.25}
            self.倍率 *= 1.05
            self.触发神影手 = 1
        elif x == 1:
            self.武器倍率 = {'短剑': 1.4 + 0.28, '光剑': 1.3 + 0.26,
                         '巨剑': 1.3 + 0.26, '钝器': 1.3 + 0.26, '太刀': 1.25 + 0.25}
            self.倍率 *= 1.12
            self.触发神影手 = 1

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>拔刀奥义</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[拔刀斩]<br>"
            temp += "准备动作时间 -30%<br>"
            temp += "短剑 : 剑气的拔刀斩攻击力比率 +28%<br>"
            temp += "太刀 : 追加攻击的拔刀斩攻击力比率 +25%<br>"
            temp += "钝器 : 追加攻击的拔刀斩攻击力比率 +26%<br>"
            temp += "巨剑 : [巨剑精通]最大蓄气时[拔刀斩]攻击力增加量 +26%<br>"
            temp += "光剑 : 追加攻击的拔刀斩攻击力比率 +26%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "攻击成功时发动[神影手] (一次[拔刀斩]最多发动1次)<br>"
            temp += "攻击范围 +20%<br>"
            temp += "攻击力 +5%"
        elif x == 1:
            temp = "<font color='#FF00FF'>拔刀奥义</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[拔刀斩]<br>"
            temp += "准备动作时间 -30%<br>"
            temp += "短剑 : 剑气的拔刀斩攻击力比率 +28%<br>"
            temp += "太刀 : 追加攻击的拔刀斩攻击力比率 +25%<br>"
            temp += "钝器 : 追加攻击的拔刀斩攻击力比率 +26%<br>"
            temp += "巨剑 : [巨剑精通]最大蓄气时[拔刀斩]攻击力增加量 +26%<br>"
            temp += "光剑 : 追加攻击的拔刀斩攻击力比率 +26%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "攻击成功时发动[神影手] (一次[拔刀斩]最多发动1次)<br>"
            temp += "攻击范围 +20%<br>"
            temp += "攻击力 +12%"
        return temp

    hit数 = 2
    刺伤几率 = [0, 0, 0, 0, 0, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 100, 100, 100, 100,
            100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    可附加的刺伤数量 = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7,
                7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
    追加刺伤几率 = [0, 0, 0, 0, 0, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,
              100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    追加可附加的刺伤数量 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
                  3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级] + self.追加刺伤几率[self.等级] / 100 * self.追加可附加的刺伤数量[self.等级]


class 极诣·剑魂技能11(极诣·剑魂主动技能):
    名称 = '破军斩龙击'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    TP成长 = 0.10
    TP上限 = 5
    CD = 25.0
    data1 = [int(x*1.162) for x in [0, 3159, 3479, 3800, 4121, 4440, 4761, 5082, 5402, 5722, 6046, 6363, 6685, 7007, 7327, 7646, 7968, 8288, 8609, 8928, 9250, 9571, 9890, 10212, 10533, 10854, 11173, 11495, 11814, 12135, 12456, 12777, 13096, 13417, 13738, 14059, 14378,
             14700, 15020, 15341, 15661, 15982, 16303, 16622, 16944, 17263, 17585, 17906, 18228, 18546, 18867, 19189, 19509, 19827, 20151, 20470, 20792, 21113, 21433, 21753, 22073, 22395, 22715, 23035, 23356, 23677, 23996, 24318, 24639, 24959, 25279]]
    data2 = [int(x*1.162) for x in [0, 3791, 4176, 4560, 4945, 5330, 5715, 6098, 6485, 6868, 7254, 7637, 8023, 8408, 8792, 9176, 9559, 9946, 10332, 10715, 11101, 11485, 11870, 12254, 12639, 13024, 13409, 13793, 14178, 14563, 14948, 15332, 15717, 16099, 16487, 16871,
             17254, 17642, 18025, 18411, 18795, 19177, 19565, 19947, 20332, 20719, 21101, 21489, 21871, 22255, 22640, 23028, 23410, 23794, 24179, 24565, 24949, 25334, 25718, 26106, 26488, 26873, 27258, 27642, 28027, 28411, 28796, 29180, 29566, 29951, 30334]]
    data3 = [int(x*1.162) for x in [0, 5687, 6266, 6840, 7417, 7995, 8572, 9149, 9728, 10304, 10883, 11457, 12034, 12612, 13189, 13767, 14342, 14919, 15497, 16073, 16650, 17228, 17806, 18384, 18959, 19536, 20114, 20691, 21268, 21844, 22421, 23000, 23575, 24151, 24730, 25305,
             25882, 26461, 27037, 27616, 28193, 28770, 29345, 29922, 30499, 31078, 31654, 32233, 32806, 33385, 33961, 34539, 35117, 35693, 36271, 36847, 37424, 38001, 38578, 39156, 39734, 40309, 40887, 41464, 42041, 42618, 43195, 43771, 44349, 44925, 45503]]
    数据 = [data1, data2, data3]
    次数 = [1, 1, 1]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = 4
    刺伤几率 = [0, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
            100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    可附加的刺伤数量 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
                4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    def 穿云刺数量(self, 武器类型):
        return 5


class 极诣·剑魂技能12(极诣·剑魂主动技能):
    名称 = '猛龙断空斩'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    TP成长 = 0.10
    TP上限 = 5
    CD = 20.0
    data1 = [int(x*1.18393) for x in [0, 1854, 2043, 2231, 2419, 2608, 2796, 2984, 3171, 3360, 3548, 3736, 3924, 4114, 4302, 4490, 4677, 4867, 5055, 5241, 5431, 5619, 5807, 5995, 6184, 6372, 6560, 6748, 6937, 7125, 7313, 7501, 7690, 7877, 8065, 8254, 8442,
             8630, 8818, 9007, 9195, 9383, 9571, 9761, 9947, 10135, 10323, 10512, 10700, 10888, 11078, 11266, 11454, 11642, 11831, 12018, 12207, 12393, 12583, 12771, 12959, 13148, 13336, 13524, 13712, 13901, 14088, 14277, 14464, 14654, 14841]]
    data2 = [int(x*1.18393) for x in [0, 2724, 3002, 3278, 3555, 3830, 4107, 4384, 4661, 4936, 5214, 5490, 5765, 6044, 6320, 6596, 6873, 7149, 7425, 7702, 7979, 8255, 8531, 8808, 9086, 9361, 9638, 9914, 10191, 10467, 10744, 11020, 11297, 11573, 11849, 12127, 12404,
             12679, 12955, 13233, 13508, 13785, 14062, 14339, 14614, 14891, 15168, 15445, 15720, 15997, 16274, 16550, 16828, 17103, 17380, 17657, 17932, 18209, 18486, 18763, 19038, 19315, 19592, 19869, 20144, 20422, 20698, 20973, 21251, 21528, 21804]]
    数据 = [data1, data2]
    次数 = [2, 2]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * (1 + self.TP成长 * self.TP等级) * self.倍率 * (1.25 if 武器类型 == '短剑' else 1.0)

    # 极神剑术被动相关,短剑影响
    def 极神剑术占比(self, 武器类型):
        return self.data1[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率 * (1.25 if 武器类型 == '短剑' else 1.0) / self.等效百分比(武器类型)

    # 猛龙过江
    # 巴恩的飓风强化 (学习[极 · 神剑术]后发动)
    #- 移动时追击周围敌人
    # - 持续时间 +1秒
    #- 多段攻击次数上限 +5
    # - 攻击力 -57%
    #- 突进上斩动作结束时生成旋风
    # - 大小 +80%
    # - 多段攻击次数上限 +2次
    hit数 = 4 + 8
    旋风攻击次数 = 4 * 2
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.hit数 = 4 + 11 * 3
            self.旋风攻击次数 = 11 * 3 * 0.43
        elif x == 1:
            self.hit数 = 4 + 11 * 3
            self.旋风攻击次数 = 11 * 3 * 0.43
            self.倍率 *= 1.07

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>猛龙过江</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[猛龙断空斩]<br>"
            temp += "巴恩的飓风强化 (学习[极 · 神剑术]后发动)<br>"
            temp += "- 移动时追击周围敌人<br>"
            temp += "- 持续时间 +1秒<br>"
            temp += "- 多段攻击次数上限 +5<br>"
            temp += "- 攻击力 -57%<br>"
            temp += "- 突进上斩动作结束时生成旋风<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "巴恩的飓风追加强化<br>"
            temp += "- 大小 +80%<br>"
            temp += "- 多段攻击次数上限 +2次"
        elif x == 1:
            temp = "<font color='#FF00FF'>猛龙过江</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[猛龙断空斩]<br>"
            temp += "巴恩的飓风强化 (学习[极 · 神剑术]后发动)<br>"
            temp += "- 移动时追击周围敌人<br>"
            temp += "- 持续时间 +1秒<br>"
            temp += "- 多段攻击次数上限 +5<br>"
            temp += "- 攻击力 -57%<br>"
            temp += "- 突进上斩动作结束时生成旋风<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "巴恩的飓风追加强化<br>"
            temp += "- 大小 +80%<br>"
            temp += "- 多段攻击次数上限 +2次<br>"
            temp += "- 攻击力 +7%"
        return temp


class 极诣·剑魂技能13(极诣·剑魂主动技能):
    名称 = '幻影剑舞'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    TP成长 = 0.10
    TP上限 = 5
    CD = 45.0
    斩击倍率 = {'短剑': 12 * 0.9, '光剑': 24 * 0.75,
            '巨剑': 12 * 1.5, '钝器': 12, '太刀': 24 * 0.75}
    剑气倍率 = {'短剑': 4 * 1.2, '光剑': 3, '巨剑': 3, '钝器': 4.2, '太刀': 3}
    data1 = [int(x*1.1742) for x in [0, 689, 759, 830, 900, 970, 1041, 1110, 1180, 1251, 1319, 1389, 1459, 1531, 1601, 1669, 1740, 1811, 1882, 1951, 2021, 2089, 2160, 2231, 2301, 2371, 2440, 2511, 2582, 2651, 2721, 2791, 2860, 2931, 3001, 3071,
             3142, 3210, 3281, 3352, 3421, 3492, 3561, 3632, 3701, 3772, 3842, 3912, 3980, 4052, 4123, 4192, 4263, 4332, 4403, 4472, 4542, 4612, 4681, 4751, 4821, 4893, 4962, 5033, 5103, 5173, 5242, 5312, 5383, 5451, 5521]]
    data2 = [int(x*1.1742) for x in [0, 2762, 3041, 3321, 3601, 3881, 4163, 4442, 4722, 5003, 5282, 5564, 5842, 6121, 6405, 6683, 6964, 7244, 7523, 7804, 8084, 8364, 8646, 8925, 9204, 9485, 9765, 10044, 10325, 10606, 10886, 11167, 11446, 11727, 12007, 12285, 12569,
             12847, 13126, 13408, 13688, 13968, 14248, 14526, 14809, 15089, 15369, 15649, 15929, 16209, 16489, 16769, 17049, 17330, 17610, 17888, 18172, 18451, 18729, 19011, 19290, 19572, 19851, 20131, 20413, 20692, 20972, 21253, 21531, 21811, 22093]]

    def 等效百分比(self, 武器类型):
        return (self.斩击倍率[武器类型] * self.data1[self.等级] + self.剑气倍率[武器类型] * self.data2[self.等级]) * (1 + self.TP成长 * self.TP等级) * self.倍率

    # 极神剑术被动相关,武器倍率不影响
    def 极神剑术斩击占比(self, 武器类型):
        return self.data1[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率 / self.等效百分比(武器类型)

    # 极神剑术被动相关,武器倍率不影响
    def 极神剑术剑气占比(self, 武器类型):
        return self.data2[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率 / self.等效百分比(武器类型)

    hit数 = 24 + 3 + 4 + 3  # 本体斩击:24  本体剑气:3  影子斩击:4  影子剑气:3
    刺伤几率 = [0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18,
            19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35]
    可附加的刺伤数量 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
                2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级] * (24 + 3)

    def 穿云刺数量(self, 武器类型):
        return 4

    # 无形剑舞
    # 攻击范围 +25%
    # 幻影斩击多段攻击次数 +8次
    # 施放过程中所受伤害 -90%
    # 幻影斩击多段攻击次数 +5次
    是否有护石 = 1
    影子斩击次数 = 4
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.影子斩击次数 += 13
            self.hit数 += 13
        elif x == 1:
            self.倍率 *= 1.06
            self.影子斩击次数 += 13
            self.hit数 += 13

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>无形剑舞</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[幻影剑舞]<br>"
            temp += "攻击范围 +25%<br>"
            temp += "幻影斩击多段攻击次数 +8次<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "施放过程中所受伤害 -90%<br>"
            temp += "幻影斩击多段攻击次数 +5次"
        elif x == 1:
            temp = "<font color='#FF00FF'>无形剑舞</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[幻影剑舞]<br>"
            temp += "攻击范围 +25%<br>"
            temp += "幻影斩击多段攻击次数 +8次<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "施放过程中所受伤害 -90%<br>"
            temp += "幻影斩击多段攻击次数 +5次<br>"
            temp += "- 攻击力 +6%"
        return temp


class 极诣·剑魂技能14(极诣·剑魂主动技能):
    名称 = '极鬼剑术暴风式'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    CD = 145.0
    hit数 = 26
    data1 = [int(x*1.214) for x in [0, 3832, 4721, 5610, 6498, 7388, 8277, 9166, 10056, 10945, 11832, 12723, 13612, 14500, 15390, 16280, 17169, 18055, 18945, 19834, 20722, 21611, 22499, 23390, 24279, 25167, 26057, 26947, 27835, 28724, 29613, 30503, 31392, 32279, 33168, 34057,
             34947, 35836, 36723, 37613, 38501, 39391, 40280, 41170, 42059, 42947, 43836, 44726, 45615, 46503, 47390, 48281, 49170, 50058, 50948, 51838, 52725, 53614, 54503, 55393, 56282, 57171, 58060, 58949, 59838, 60725, 61613, 62505, 63392, 64282, 65171]]
    data2 = [int(x*1.214) for x in [0, 1824, 2248, 2670, 3096, 3516, 3943, 4364, 4787, 5212, 5633, 6058, 6482, 6904, 7329, 7752, 8175, 8596, 9022, 9445, 9868, 10291, 10715, 11137, 11562, 11983, 12408, 12829, 13254, 13677, 14101, 14525, 14947, 15371, 15794, 16216, 16642,
             17062, 17488, 17910, 18334, 18756, 19181, 19605, 20027, 20451, 20873, 21297, 21721, 22144, 22567, 22991, 23413, 23840, 24260, 24684, 25107, 25530, 25954, 26376, 26801, 27224, 27647, 28070, 28492, 28917, 29340, 29764, 30186, 30610, 31032]]
    data3 = [int(x*1.214) for x in [0, 7118, 8769, 10421, 12073, 13721, 15373, 17025, 18676, 20325, 21976, 23628, 25279, 26929, 28580, 30233, 31882, 33534, 35184, 36836, 38486, 40136, 41789, 43440, 45090, 46740, 48391, 50044, 51694, 53345, 54995, 56647, 58298, 59949, 61600, 63251,
             64901, 66551, 68204, 69852, 71505, 73156, 74806, 76456, 78108, 79758, 81411, 83061, 84712, 86364, 88013, 89665, 91316, 92967, 94619, 96267, 97920, 99571, 101220, 102872, 104523, 106175, 107826, 109476, 111127, 112780, 114428, 116080, 117731, 119382, 121031]]
    数据 = [data1, data2, data3]
    次数 = [1, 24, 1]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * self.倍率 * 1.1  # Lv9以上时增加10%攻击力


class 极诣·剑魂技能15(被动技能):
    名称 = '极鬼剑术斩铁式'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.995 + 0.03  + 0.02 * self.等级, 5)


class 极诣·剑魂技能16(被动技能):
    名称 = '极鬼剑术斩钢式'
    所在等级 = 48
    等级上限 = 1
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.083


class 极诣·剑魂技能17(极诣·剑魂主动技能):
    名称 = '极神剑术流星落'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    CD = 35.0
    TP成长 = 0.10
    TP上限 = 5
    data1 = [int(x*1.155) for x in [0, 2901, 3197, 3491, 3786, 4079, 4375, 4668, 4964, 5257, 5552, 5846, 6142, 6435, 6730, 7025, 7318, 7613, 7909, 8202, 8497, 8791, 9086, 9380, 9675, 9968, 10264, 10559, 10852, 11145, 11441, 11736, 12030, 12325, 12619, 12912, 13207,13502, 13798, 14091, 14386, 14679, 14975, 15271, 15564, 15859, 16153, 16445, 16741, 17037, 17331, 17625, 17920, 18213, 18509, 18803, 19098, 19392, 19687, 19979, 20275, 20571, 20864, 21159, 21452, 21745, 22041, 22337, 22632, 22926, 23218]]
    data2 = [int(x*1.155) for x in [0, 533, 587, 643, 697, 750, 806, 860, 914, 968, 1022, 1078, 1130, 1186, 1240, 1294, 1348, 1403, 1455, 1509, 1565, 1618, 1671, 1729, 1783, 1835, 1890, 1944, 1998, 2052, 2108, 2161, 2216, 2270, 2324, 2378,2432, 2486, 2541, 2596, 2650, 2705, 2758, 2812, 2867, 2921, 2973, 3030, 3083, 3138, 3193, 3247, 3299, 3355, 3408, 3462, 3518, 3571, 3628, 3680, 3734, 3788, 3843, 3896, 3953, 4005, 4059, 4114, 4169, 4222, 4276]]
    data3 = [int(x*1.155) for x in [0, 5804, 6394, 6982, 7570, 8162, 8749, 9338, 9928, 10516, 11104, 11696, 12282, 12870, 13462, 14050, 14638, 15229, 15816, 16404, 16996, 17582, 18171, 18762, 19350, 19938, 20529, 21116, 21704, 22294, 22883, 23470, 24062, 24650, 25237, 25828,26417, 27004, 27596, 28184, 28774, 29362, 29950, 30539, 31128, 31717, 32305, 32896, 33484, 34073, 34662, 35251, 35839, 36429, 37017, 37606, 38196, 38785, 39373, 39963, 40550, 41139, 41729, 42316, 42906, 43496, 44084, 44673, 45263, 45850, 46440]]
    数据 = [data1, data2, data3]
    次数 = [1, 38, 1]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = sum(次数)
    流星之天剑刺伤层数 = 0  # 极神剑术被动相关
    刺伤几率 = [0, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, 134,
            137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 179, 182, 185, 188, 191, 194, 197, 200, 203, 206, 209, 212, 215, 218, 221, 224, 227, 230, 233, 236]
    可附加的刺伤数量 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

    def 额外刺伤层数(self, 武器类型):
        return min(self.刺伤几率[self.等级] / 100, 1) * self.可附加的刺伤数量[self.等级] + self.流星之天剑刺伤层数

    # 流星审判
    # 跳跃冲击波攻击强制控制敌人1.5秒
    # 跳跃动作变更为无敌状态， 落地后增加1秒无敌时间
    # 投掷流星剑前置准备时间 -50%
    # 流星剑间隔 -20%
    # 流星剑数量 +9个
    # 流星剑和流星之天剑攻击范围 +55%
    # 流星之天剑攻击力 +35%
    # 流星之天剑强制控制时间 +60%
    是否有护石 = 1
    流星之天剑倍率 = 1.0  # 极神剑术被动相关
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.hit数 += 9
            self.次数 = [1, 38 + 9, 1]
            self.流星之天剑倍率 = 1.35
        elif x == 1:
            self.hit数 += 9
            self.次数 = [1, 38 + 9, 1]
            self.流星之天剑倍率 = 2.05

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>流星审判</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[极 · 神剑术 (流星落)]<br>"
            temp += "跳跃冲击波攻击强制控制敌人1.5秒<br>"
            temp += "跳跃动作变更为无敌状态， 落地后增加1秒无敌时间<br>"
            temp += "投掷流星剑前置准备时间 -50%<br>"
            temp += "流星剑间隔 -20%<br>"
            temp += "流星剑数量 +9个<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "流星剑和流星之天剑攻击范围 +55%<br>"
            temp += "流星之天剑攻击力 +35%<br>"
            temp += "流星之天剑强制控制时间 +60%"
        elif x == 1:
            temp = "<font color='#FF00FF'>流星审判</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[极 · 神剑术 (流星落)]<br>"
            temp += "跳跃冲击波攻击强制控制敌人1.5秒<br>"
            temp += "跳跃动作变更为无敌状态， 落地后增加1秒无敌时间<br>"
            temp += "投掷流星剑前置准备时间 -50%<br>"
            temp += "流星剑间隔 -20%<br>"
            temp += "流星剑数量 +9个<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "流星剑和流星之天剑攻击范围 +55%<br>"
            temp += "流星之天剑攻击力 +105%<br>"
            temp += "流星之天剑强制控制时间 +60%"
        return temp


class 极诣·剑魂技能18(极诣·剑魂主动技能):
    名称 = '破空拔刀斩'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    CD = 50.0
    TP成长 = 0.10
    TP上限 = 5
    # 近距离百分比而非剑气
    数据 = [int(x*1.155) for x in [0, 32083, 35337, 38590, 41846, 45099, 48357, 51611, 54865, 58121, 61375, 64629, 67885, 71141, 74394, 77649, 80903, 84157, 87414, 90667, 93922, 97178, 100432, 103688, 106942, 110197, 113452,
          116706, 119962, 123213, 126471, 129725, 132980, 136235, 139492, 142744, 146000, 149254, 152509, 155764, 159018, 162274, 165527, 168781, 172038, 175292, 178548, 181802, 185056, 188312, 191565]]

    def 等效百分比(self, 武器类型):
        return self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率

    hit数 = 1
    刺伤几率 = [0, 31, 35, 39, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99, 100, 100, 100, 100, 100, 100, 100, 100,
            100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    可附加的刺伤数量 = [0, 3, 3, 3, 5, 5, 5, 7, 7, 7, 9, 9, 9, 11, 11, 11, 13, 13, 13, 15, 15, 15, 15, 15, 15, 15,
                15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]

    def 额外刺伤层数(self, 武器类型):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    # 破空一刀
    # 剑气攻击适用与近距离击打相同的攻击力
    # 准备动作时间 -40%
    # 冷却时间 -10%
    # 剑气生成后僵直 -20%
    # 攻击力 +11%
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.11
            self.CD *= 0.9
        elif x == 1:
            self.倍率 *= 1.19
            self.CD *= 0.9

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>破空一刀</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[破空拔刀斩]<br>"
            temp += "剑气攻击适用与近距离击打相同的攻击力<br>"
            temp += "准备动作时间 -40%<br>"
            temp += "冷却时间 -10%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "剑气生成后僵直 -20%<br>"
            temp += "攻击力 +11%"
        elif x == 1:
            temp = "<font color='#FF00FF'>破空一刀</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[破空拔刀斩]<br>"
            temp += "剑气攻击适用与近距离击打相同的攻击力<br>"
            temp += "准备动作时间 -40%<br>"
            temp += "冷却时间 -10%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "剑气生成后僵直 -20%<br>"
            temp += "攻击力 +19%"
        return temp


class 极诣·剑魂技能19(极诣·剑魂主动技能):
    名称 = '极神剑术破空斩'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    CD = 35.0
    多段倍率 = {'短剑': 5, '光剑': 6, '巨剑': 5 * 1.08, '钝器': 5, '太刀': 6}
    爆炸倍率 = {'短剑': 1, '光剑': 1, '巨剑': 1.08, '钝器': 1, '太刀': 1}
    data1 = [int(x*1.193) for x in [0, 4932, 5432, 5934, 6432, 6934, 7433, 7935, 8434, 8937, 9435, 9937, 10436, 10939, 11438, 11936, 12439, 12938, 13440, 13938, 14441, 14939, 15441, 15941, 16441, 16942, 17442, 17943, 18443, 18944, 19444, 19945, 20446, 20945, 21446, 21945,22448, 22947, 23449, 23948, 24450, 24948, 25450, 25950, 26450, 26950, 27450, 27952, 28452, 28953, 29452, 29954, 30455, 30954, 31454, 31954, 32454, 32956, 33456, 33957, 34459, 34957, 35458, 35959, 36458, 36959, 37459, 37961, 38460, 38960, 39461]]
    data2 = [int(x*1.193) for x in [0, 16441, 18109, 19777, 21446, 23114, 24781, 26450, 28118, 29786, 31454, 33124, 34790, 36458, 38127, 39795, 41463, 43133, 44799, 46467, 48134, 49803, 51472, 53139, 54806, 56475, 58144, 59811, 61481, 63148, 64815, 66483, 68153, 69820, 71490, 73157, 74824,76492, 78159, 79829, 81495, 83166, 84833, 86501, 88168, 89838, 91504, 93174, 94842, 96510, 98177, 99846, 101512, 103183, 104850, 106516, 108186, 109853, 111521, 113188, 114859, 116525, 118195, 119862, 121530, 123197, 124868, 126534, 128203, 129870, 131539]]
    def 等效百分比(self, 武器类型):
        return (self.多段倍率[武器类型] * self.data1[self.等级] + self.爆炸倍率[武器类型] * self.data2[self.等级]) * self.倍率

    # 极神剑术被动相关,巨剑蓄力会影响
    def 极神剑术占比(self, 武器类型):
        return self.爆炸倍率[武器类型] * self.data2[self.等级] * self.倍率 / self.等效百分比(武器类型)

    hit数 = 7
    刺伤几率 = [0, 530, 550, 570, 590, 610, 630, 650, 670, 690, 710, 730, 750, 770, 790, 810, 830, 850, 870, 890, 910, 930, 950, 970, 990, 1010, 1030, 1050, 1070, 1090, 1110, 1130, 1150, 1170, 1190, 1210, 1230,1250, 1270, 1290, 1310, 1330, 1350, 1370, 1390, 1410, 1430, 1450, 1470, 1490, 1510, 1530, 1550, 1570, 1590, 1610, 1630, 1650, 1670, 1690, 1710, 1730, 1750, 1770, 1790, 1810, 1830, 1850, 1870, 1890, 1910]
    可附加的刺伤数量 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
                3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]

    def 额外刺伤层数(self, 武器类型):
        return min(self.刺伤几率[self.等级] / 1000, 1) * self.可附加的刺伤数量[self.等级]

    def 穿云刺数量(self, 武器类型):
        return 4

    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.data2 = [x * 1.62 for x in self.data2]


class 极诣·剑魂技能20(极诣·剑魂主动技能):
    名称 = '极神剑术瞬斩'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    CD = 50.0
    data1 = [int(x*1.16) for x in [0, 13585, 14963, 16340, 17719, 19096, 20475, 21855, 23232, 24611, 25988, 27366, 28743, 30122, 31500, 32879, 34256, 35634, 37013, 38392, 39770, 41147, 42526, 43903, 45282, 46660, 48041, 49416, 50796, 52172, 53552, 54930, 56308, 57686, 59064, 60442,
             61820, 63201, 64576, 65956, 67333, 68712, 70088, 71469, 72846, 74223, 75602, 76980, 78357, 79736, 81116, 82494, 83872, 85250, 86628, 88006, 89384, 90762, 92140, 93517, 94896, 96273, 97653, 99032, 100409, 101787, 103166, 104543, 105923, 107300, 108678]]
    data2 = [int(x*1.16) for x in [0, 2223, 2449, 2671, 2898, 3124, 3350, 3575, 3801, 4026, 4251, 4477, 4703, 4929, 5154, 5380, 5605, 5830, 6056, 6281, 6507, 6734, 6958, 7182, 7410, 7636, 7860, 8086, 8312, 8538, 8763, 8989, 9213, 9438, 9663, 9890, 10116, 10340,
             10567, 10792, 11017, 11243, 11468, 11695, 11921, 12144, 12371, 12597, 12819, 13047, 13273, 13499, 13725, 13950, 14174, 14400, 14625, 14850, 15077, 15304, 15527, 15753, 15978, 16204, 16430, 16655, 16882, 17108, 17331, 17558, 17784]]
    data3 = [int(x*1.16) for x in [0, 37048, 40807, 44566, 48324, 52084, 55843, 59601, 63360, 67118, 70877, 74636, 78394, 82152, 85910, 89671, 93429, 97186, 100945, 104704, 108465, 112223, 115981, 119740, 123498, 127258, 131014, 134774, 138532, 142292, 146050, 149810, 153568, 157327, 161086, 164844, 168602, 172360, 176119, 179878, 183638, 187396, 191154, 194914, 198671, 202430, 206190, 209948, 213705, 217466, 221223, 224981, 228738, 232499, 236257, 240016, 243775, 247533, 251292, 255052, 258811, 262568, 266326, 270085, 273844, 277602, 281362, 285120, 288879, 292639, 296396]]
    数据 = [data1, data2, data3]
    次数 = [1, 5, 1]
    hit数 = sum(次数)

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * self.倍率

    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.32


class 极诣·剑魂技能21(极诣·剑魂主动技能):
    名称 = '万剑归宗(终结)'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    CD = 180.0
    data1 = [int(x*1.214) for x in [0, 4545, 5604, 6660, 7711, 8768, 9825, 10876, 11934, 12987, 14039, 15100, 16152, 17204, 18258, 19317, 20371, 21423, 22477, 23538, 24590, 25642, 26699, 27751, 28809, 29865, 30919, 31971, 33031, 34084, 35136, 36188, 37250, 38301, 39354, 40409,
             41464, 42522, 43574, 44632, 45684, 46740, 47797, 48850, 49901, 50955, 52015, 53068, 54120, 55175, 56235, 57288, 58340, 59395, 60453, 61505, 62563, 63614, 64669, 65728, 66781, 67834, 68885, 69946, 71001, 72050, 73106, 74166, 75219, 76271, 77329]]
    data2 = [int(x*1.214) for x in [0, 18168, 22383, 26599, 30814, 35020, 39236, 43451, 47668, 51877, 56094, 60308, 64523, 68731, 72945, 77162, 81376, 85588, 89803, 94018, 98226, 102440, 106656, 110871, 115086, 119296, 123511, 127724, 131933, 136151, 140365, 144579, 148793, 153005, 157219, 161433, 165644, 169858, 174074, 178288, 182503, 186712, 190927, 195142, 199354, 203568, 207782, 211997, 216207, 220421, 224636, 228851, 233061, 237276, 241491, 245701, 249916, 254131, 258345, 262560, 266771, 270985, 275199, 279409, 283624, 287838, 292053, 296269, 300479, 304696, 308906]]
    数据 = [data1, data2]
    次数 = [14, 2]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * self.倍率

    # 该技能hit数不会触发太刀刺伤


class 极诣·剑魂技能22(极诣·剑魂主动技能):
    名称 = '万剑归宗(穿云刺)'
    所在等级 = 85
    等级上限 = 1
    基础等级 = 1
    数据 = [int(x*1.214) for x in [0, 982, 1208, 1437, 1664, 1890, 2117, 2347, 2573, 2801, 3029, 3255, 3483, 3710, 3938, 4166, 4393, 4620, 4848, 5075, 5303, 5530, 5758, 5986, 6213, 6441, 6667, 6894, 7122, 7349, 7578, 7805, 8032, 8261, 8488, 8714, 8942, 9171,
          9398, 9624, 9852, 10081, 10307, 10534, 10763, 10989, 11217, 11446, 11673, 11900, 12127, 12354, 12582, 12809, 13037, 13265, 13492, 13720, 13947, 14175, 14400, 14628, 14857, 15084, 15311, 15540, 15766, 15993, 16222, 16449, 16676]]

    def 等效百分比(self, 武器类型):
        return self.数据[self.等级] * self.倍率

    def 等效CD(self, 武器类型, 输出类型):
        return 1.0

    # 该技能hit数不会触发太刀刺伤


class 极诣·剑魂技能23(极诣·剑魂主动技能):
    名称 = '极神剑术无形斩'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    CD = 60.0
    data1 = [int(x*1.16) for x in [0, 20213, 22264, 24315, 26365, 28416, 30467, 32517, 34568, 36619, 38669, 40720, 42771, 44821, 46872, 48923, 50973, 53024, 55075, 57125, 59176, 61227, 63278, 65328, 67379, 69430, 71480, 73531, 75582, 77632, 79683, 81734, 83784, 85835, 87886, 89936, 91987, 94038, 96088, 98139, 100190]]
    data2 = [int(x*1.16) for x in [0, 2887, 3180, 3473, 3766, 4059, 4352, 4645, 4938, 5231, 5524, 5817, 6110, 6403, 6696, 6989, 7281, 7574, 7867, 8160, 8453, 8746, 9039, 9332, 9625, 9918, 10211, 10504, 10797, 11090, 11383, 11676, 11969, 12262, 12555, 12848, 13141, 13434, 13726, 14019, 14312]]
    data3 = [int(x*1.16) for x in [0, 38502, 42408, 46314, 50220, 54126, 58032, 61938, 65844, 69750, 73656, 77563, 81469, 85375, 89281, 93187, 97093, 100999, 104905, 108811, 112717, 116623, 120529, 124435, 128341, 132247, 136153, 140059, 143965, 147871, 151777, 155684, 159590, 163496, 167402, 171308, 175214, 179120, 183026, 186932, 190838]]
    数据 = [data1, data2, data3]
    次数 = [1, 13, 1]
    hit数 = sum(次数)

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * self.倍率


class 极诣·剑魂技能24(极诣·剑魂主动技能):
    名称 = '万剑极诣开天斩'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    CD = 290
    data1 = [int(x*1.214) for x in [0, 43625, 53743, 63858, 73975, 84091, 94207, 104323, 114439, 124555, 134672, 144787, 154904, 165020, 175136, 185253, 195369, 205485, 215602, 225718, 235833, 245950, 256066, 266183, 276298, 286415, 296531, 306647, 316763, 326880, 336995, 347112, 357228, 367345, 377458, 387575, 397691, 407807, 417925, 428041, 438157]]
    data2 = [int(x*1.214) for x in [0, 57049, 70278, 83507, 96737, 109965, 123193, 136422, 149651, 162880, 176109, 189338, 202567, 215796, 229025, 242253, 255482, 268712, 281941, 295170, 308398, 321627, 334856, 348086, 361314, 374542, 387771, 401000, 414229, 427458, 440687, 453914, 467145, 480373, 493601, 506832, 520060, 533288, 546519, 559746, 572974]]
    data3 = [int(x*1.214) for x in [0, 7830, 9645, 11462, 13276, 15093, 16908, 18724, 20540, 22356, 24172, 25987, 27803, 29619, 31434, 33250, 35066, 36881, 38697, 40513, 42328, 44144, 45960, 47777, 49591, 51408, 53223, 55039, 56854, 58671, 60485, 62300, 64116, 65932, 67747, 69565, 71381, 73196, 75012, 76827, 78642]]
    data4 = [int(x*1.214) for x in [0, 10738, 13228, 15718, 18209, 20699, 23189, 25680, 28169, 30659, 33150, 35639, 38130, 40620, 43109, 45600, 48091, 50581, 53071, 55561, 58051, 60541, 63031, 65521, 68011, 70502, 72992, 75482, 77973, 80462, 82953, 85442, 87931, 90423, 92912, 95401, 97894, 100382, 102872, 105364, 107853]]
    data5 = [int(x*1.214) for x in [0, 134234, 165361, 196488, 227614, 258741, 289868, 320995, 352122, 383248, 414375, 445502, 476629, 507756, 538882, 570009, 601136, 632263, 663390, 694516, 725643, 756770, 787897, 819024, 850151, 881277, 912404, 943531, 974658, 1005785, 1036911, 1068037, 1099165, 1130292, 1161418, 1192546, 1223672, 1254798, 1285927, 1317053, 1348178]]
    数据 = [data1, data2, data3, data4, data5]
    次数 = [1, 1, 6, 5, 1]
    hit数 = sum(次数)

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.次数)):
            sum += self.数据[i][self.等级] * self.次数[i]
        return sum * self.倍率

    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0


class 极诣·剑魂技能25(被动技能):
    名称 = '极神剑术'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11
    关联技能 = ['拔刀斩', '破军斩龙击', '极鬼剑术暴风式', '破空拔刀斩', '极神剑术瞬斩',
            '万剑归宗(终结)', '万剑归宗(穿云刺)', '极神剑术无形斩', '万剑极诣开天斩']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)

    # 基础值 40%
    暴风式冲击波 = [int(x*1.0) for x in [0, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 264, 268, 272, 276]]
    # 基础值 21%
    飓风 = [int(x*1.0) for x in [0, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, 800, 820, 840, 860, 880, 900, 920, 940, 960, 980, 1000, 1020, 1040, 1060, 1080, 1100, 1120, 1140, 1160, 1180, 1200, 1220, 1240, 1260, 1280, 1300, 1320, 1340, 1360, 1380]]
    # 基础值 55%
    幻影斩击 = [int(x*1.0) for x in [0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315, 320, 325, 330, 335, 340, 345]]
    # 基础值 55%
    幻影剑气 = [int(x*1.0) for x in [0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315, 320, 325, 330, 335, 340, 345]]
    # 基础值 41%
    幻影钝器 = [int(x*1.0) for x in [0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315, 320, 325, 330, 335, 340, 345]]
    # 基础值 60%
    十字斩 = [int(x*1.0) for x in [0, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162, 168, 174, 180, 186, 192, 198, 204, 210, 216, 222, 228, 234, 240, 246, 252, 258, 264, 270, 276, 282, 288, 294, 300, 306, 312, 318, 324, 330, 336, 342, 348, 354, 360, 366, 372, 378, 384, 390, 396, 402, 408, 414]]
    # 流星之天剑
    流星之天剑 = [int(x*1.15488) for x in [0, 3125, 3386, 3645, 3906, 4168, 4428, 4688, 4948, 5208, 5469, 5730, 5990, 6250, 6511, 6772, 7031, 7292, 7551, 7813, 8074, 8334, 8594, 8855, 9116, 9375, 9636, 9897, 10157, 10417, 10678, 10937, 11199, 11460, 11719, 11980, 12241, 6814, 6951, 7084, 7222, 7358, 7492, 7630, 7768, 7901, 8038, 8176, 8310, 8446, 8584, 8717, 8855, 8992, 9126, 9264, 9399, 9533, 9671, 9809, 9943, 10080, 10218, 10351, 10487, 10625, 10758, 10896, 11033, 11167, 11304]]
    # 巨剑流星之天剑追加
    巨剑流星之天剑 = [int(x*1.0) for x in [0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80]]
    # 钝器冲击波
    钝器流星之天剑 = [int(x*1.155) for x in [0, 1936, 2100, 2263, 2424, 2589, 2752, 2916, 3080, 3241, 3406, 3569, 3733, 3896, 4058, 4222, 4385, 4548, 4712, 4874, 5038, 5202, 5365, 5529, 5691, 5855, 6018, 6181, 6345, 6507, 6670, 6834, 6999, 7163, 7324, 7488, 7652, 7815, 7979, 8141, 8304, 8468, 8631, 8796, 8957, 9121, 9285, 9448, 9611, 9774, 9937, 10100, 10264, 10427, 10590, 10753, 10917, 11081, 11244, 11407, 11570, 11733, 11897, 12060, 12222, 12386, 12549, 12715, 12878, 13040, 13204]]
    # 太刀刺伤
    刺伤几率 = [int(x*1.0) for x in [0, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]]
    可附加的刺伤数量 = [int(x*1.0) for x in [0, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]]
    # 光剑冲击波
    光剑流星之天剑 = [int(x*1.155) for x in [0, 1296, 1494, 1691, 1888, 2085, 2283, 2478, 2676, 2874, 3070, 3268, 3465, 3662, 3860, 4057, 4253, 4450, 4648, 4844, 5042, 5240, 5435, 5633, 5829, 6027, 6224, 6421, 6618, 6816, 7012, 7209, 7407, 7603, 7801, 7998, 8194, 8392, 8589, 8786, 8983, 9181, 9377, 9575, 9773, 9968, 10166, 10363, 10560, 10757, 10955, 11150, 11348, 11546, 11742, 11940, 12136, 12334, 12532, 12727, 12925, 13122, 13319, 13516, 13714, 13909, 14107, 14305, 14501, 14699, 14896]]

    def 天剑刺伤层数(self):
        return self.刺伤几率[self.等级] / 100 * self.可附加的刺伤数量[self.等级]

    def 附加倍率(self, 技能):
        if 技能 == '破军升龙击':
            return 0.40 + self.暴风式冲击波[self.等级] / 100
        elif 技能 == '猛龙断空斩':
            return 0.21 + self.飓风[self.等级] / 1000
        elif 技能 == '幻影剑舞斩击':
            return 0.55 + self.幻影斩击[self.等级] / 100
        elif 技能 == '幻影剑舞剑气':
            return 0.55 + self.幻影剑气[self.等级] / 100
        elif 技能 == '幻影剑舞钝器':
            return 0.41 + self.幻影钝器[self.等级] / 100
        elif 技能 == '极神剑术破空斩':
            return 0.60 + self.十字斩[self.等级] / 100

    自定义描述 = 1

    def 技能描述(self, 武器类型):
        temp = '常规技能攻击力 +%.1f%%' % (22 + 2 * self.等级) + '<br>'
        temp += '[破军升龙击]上斩：%.1f%%' % (self.附加倍率('破军升龙击') * 100) + '<br>'
        temp += '[猛龙断空斩]突进斩击：%.1f%%' % (self.附加倍率('猛龙断空斩') * 100) + '<br>'
        temp += '[幻影剑舞]斩击：%.1f%%' % (self.附加倍率('幻影剑舞斩击') * 100) + '<br>'
        if 武器类型 == '钝器':
            temp += '[幻影剑舞]钝器最后一击：%.1f%%' % (self.附加倍率('幻影剑舞钝器')
                                             * 100) + '<br>'
        else:
            temp += '[幻影剑舞]剑气：%.1f%%' % (self.附加倍率('幻影剑舞剑气') * 100) + '<br>'
        temp += '[极 · 神剑术 (破空斩)]爆炸：%.1f%%' % (self.附加倍率('极神剑术破空斩')
                                              * 100) + '<br>'
        temp += '流星之天剑攻击力：%.1f%%' % self.流星之天剑[self.等级]
        return temp


class 极诣·剑魂技能26(被动技能):
    名称 = '无形剑意'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)

    短剑流心刺 = [int(x*1.0) for x in [0, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90,
             93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147]]
    短剑流心刺空中 = [int(x*1.0) for x in [0, 13, 15, 16, 17, 19, 20, 21, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36,
               37, 39, 40, 41, 43, 44, 45, 47, 48, 49, 51, 52, 53, 55, 56, 57, 59, 60, 61, 63, 64, 65]]
    太刀流心跃 = [int(x*1.0) for x in [0, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12,
             12, 12, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20]]
    太刀流心升 = [int(x*1.0) for x in [0, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 34,
             35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 59]]
    钝器流心刺 = [int(x*1.0) for x in [0, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145,
             150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245]]
    巨剑流心刺下斩 = [int(x*1.0) for x in [0, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
               129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149]]
    巨剑流心刺旋风 = [int(x*1.0) for x in [0, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45,
               47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87]]
    巨剑流心刺空中 = [int(x*1.0) for x in [0, 240, 244, 248, 252, 256, 260, 264, 268, 272, 276, 280, 284, 288, 292, 296, 300, 304, 308, 312,
               316, 320, 324, 328, 332, 336, 340, 344, 348, 352, 356, 360, 364, 368, 372, 376, 380, 384, 388, 392, 396]]
    光剑流心升 = [int(x*1.0) for x in [0, 48, 53, 58, 62, 67, 72, 77, 82, 86, 91, 96, 101, 106, 110, 115, 120, 125, 130, 134, 139,
             144, 149, 154, 158, 163, 168, 173, 178, 182, 187, 192, 197, 202, 206, 211, 216, 221, 226, 230, 235]]

    自定义描述 = 1

    def 技能描述(self, 武器类型):
        temp = '常规技能攻击力 +%.1f%%' % (18 + 2 * self.等级) + '<br>'
        if 武器类型 == '短剑':
            temp += '短剑流心刺：%.1f%%' % self.短剑流心刺[self.等级] + '<br>'
            temp += '短剑流心刺空中：%.1f%%' % self.短剑流心刺空中[self.等级] + ' x 3'
        elif 武器类型 == '太刀':
            temp += '太刀流心跃：%.1f%%' % self.太刀流心跃[self.等级] + ' x 5<br>'
            temp += '太刀流心升：%.1f%%' % self.太刀流心升[self.等级] + ' x 4'
        elif 武器类型 == '钝器':
            temp += '钝器流心刺：%.1f%%' % self.钝器流心刺[self.等级]
        elif 武器类型 == '巨剑':
            temp += '巨剑流心刺下斩：%.1f%%' % self.巨剑流心刺下斩[self.等级] + '<br>'
            temp += '巨剑流心刺旋风：%.1f%%' % self.巨剑流心刺旋风[self.等级] + ' x 3<br>'
            temp += '巨剑流心刺空中：%.1f%%' % self.巨剑流心刺空中[self.等级]
        elif 武器类型 == '光剑':
            temp += '光剑流心升：%.1f%%' % self.光剑流心升[self.等级]
        return temp


class 极诣·剑魂技能27(被动技能):
    名称 = '短剑精通'
    所在等级 = 15
    等级上限 = 2
    基础等级 = 1
    关联技能 = ['所有']
    # 物理攻击力增加
    data1 = [0, 127, 142, 158, 173, 188, 203, 218, 233, 248, 263, 278, 293, 308, 323, 338, 353, 368, 383, 398, 413, 428, 443, 463, 483, 503, 523, 543, 563, 583, 603, 623, 643, 663, 683, 703, 723, 743, 763, 783, 803, 823, 843, 863, 883, 903, 923, 943, 963, 983, 1003, 1023, 1043, 1063, 1083, 1103, 1123, 1143, 1163, 1183, 1203, 1223, 1243, 1263, 1283, 1303, 1323, 1343, 1363, 1383, 1403]
    # 魔法攻击力增加
    data2 = [0, 12, 26, 39, 51, 64, 77, 90, 103, 116, 129, 141, 154, 167, 180, 193, 206, 219, 231, 244, 257, 270, 283, 296, 309, 321, 334, 347, 360, 373, 386, 399, 411, 424, 437, 450, 463, 476, 489, 501, 514, 527, 540, 553, 566, 579, 591, 604, 617, 630, 643, 656, 669, 681, 694, 707, 720, 733, 746, 759, 771, 784, 797, 810, 823, 836, 849, 861, 874, 887, 900]
    # [里 · 鬼剑术]剑气攻击力
    data3 = [0, 386, 399, 410, 422, 433, 443, 456, 466, 479, 489, 499, 512, 522, 536, 545, 555, 569, 579, 592, 602, 612, 625, 635, 648, 658, 669, 681, 692, 705, 715, 726, 738, 749, 761, 772, 782, 795, 805, 818, 828, 840, 852, 862, 875, 885, 897, 908, 920, 931, 942, 953, 965, 977, 988, 999, 1010, 1022, 1033, 1045, 1056, 1067, 1077, 1088, 1098, 1109, 1119, 1130, 1140, 1151, 1161]

    def 加成倍率(self, 武器类型):
        if 武器类型 != '短剑':
            return 1.0
        else:
            return round(self.data1[self.等级] / 1000 + 1, 3)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率(self, 武器类型):
        if 武器类型 != '短剑':
            return 1.0
        else:
            return round(self.data2[self.等级] / 1000 + 1, 3)

    # [里 · 鬼剑术]剑气攻击力 一轮3段
    def 里鬼附加百分比(self, 武器类型):
        if 武器类型 != '短剑':
            return 0
        else:
            return self.data3[self.等级] * 3


class 极诣·剑魂技能28(被动技能):
    名称 = '太刀精通'
    所在等级 = 15
    等级上限 = 2
    基础等级 = 1
    关联技能 = ['所有']

    # 物理攻击力增加
    data1 = [0, 52, 67, 82, 97, 112, 127, 142, 157, 172, 187, 202, 217, 232, 247, 262, 277, 292, 307, 322, 337, 352, 367, 387, 407, 427, 447, 467, 487, 507, 527, 547, 567, 587, 607, 627, 647, 667, 687, 707, 727, 747, 767, 787, 807, 827, 847, 867, 887, 907, 927, 947, 967, 987, 1007, 1027, 1047, 1067, 1087, 1107, 1127, 1147, 1167, 1187, 1207, 1227, 1247, 1267, 1287, 1307, 1327]
    # 魔法攻击力增加
    data2 = [0, 13, 28, 41, 54, 68, 82, 96, 109, 123, 137, 150, 164, 177, 191, 205, 219, 233, 245, 259, 273, 287, 301, 314, 328, 341, 355, 369, 382, 396, 410, 424, 437, 450, 464, 478, 492, 506, 520, 532, 546, 560, 574, 588, 601, 615, 628, 642, 656, 669, 683, 697, 711, 724, 737, 751, 765, 779, 793, 806, 819, 833, 847, 861, 874, 888, 902, 915, 929, 942, 956]
    # 刺伤几率
    data3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50,
             50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67]
    # 刺伤爆炸伤害(下限)
    data4 = [int(x*1.162) for x in [0,0, 0, 0, 0, 0, 0, 0, 0, 0, 1778, 1889, 2001, 2112, 2221, 2332, 2441, 2554, 2664, 2775, 2884, 2997, 3107, 3220, 3327, 3440, 3547, 3660, 3772, 3883, 3993, 4103, 4213, 4326, 4435, 4549, 4658, 4771, 4883, 4993, 5106, 5216, 5329, 5441, 5553, 5666, 5776, 5889, 5998, 6112, 6221, 6333, 6447, 6556, 6669, 6781, 6893, 7004, 7116, 7227, 7339, 7452, 7567, 7683, 7802, 7922, 8044, 8167, 8293, 8421, 8551]]
    # 刺伤爆炸伤害(上限)
    data5 = [int(x*1.162) for x in [0,0, 0, 0, 0, 0, 0, 0, 0, 0, 12354, 13122, 13891, 14659, 15428, 16197, 16965, 17734, 18503, 19271, 20040, 20809, 21577, 22346, 23113, 23882, 24650, 25419, 26188, 26956, 27725, 28494, 29262, 30031, 30800, 31568, 32337, 33105, 33874, 34643, 35411, 36180, 36949, 37717, 38486, 39255, 40023, 40792, 41561, 42328, 43096, 43865, 44634, 45402, 46171, 46940, 47708, 48477, 49246, 50014, 50783, 51552, 52333, 53125, 53930, 54746, 55575, 56417, 57271, 58138, 59019]]
    # 刺伤持续伤害
    data6 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 12, 12, 12, 13, 13, 13, 13, 13, 14, 14, 15, 15, 17, 17, 17, 18,
             18, 18, 18, 18, 19, 19, 21, 21, 21, 22, 22, 23, 23, 23, 23, 23, 24, 24, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33]
    # [空中连斩]附加攻击力
    data7 = [0, 66, 70, 74, 78, 80, 85, 88, 93, 96, 99, 103, 106, 110, 114, 118, 121, 125, 128, 131, 135, 139, 143, 146, 150, 154, 156, 161, 165, 168, 171, 176, 179, 183, 188, 190, 194, 196, 200, 205, 209, 213, 259, 263, 268, 271, 276, 280, 285, 289, 294, 299, 303, 306, 311, 316, 320, 324, 329, 333, 338, 343, 348, 353, 358, 363, 368, 373, 378, 383, 388]

    def 加成倍率(self, 武器类型):
        if 武器类型 != '太刀':
            return 1.0
        else:
            return round(self.data1[self.等级] / 1000 + 1, 3)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率(self, 武器类型):
        if 武器类型 != '太刀':
            return 1.0
        else:
            return round(self.data2[self.等级] / 1000 + 1, 3)

    def 刺伤概率(self, 武器类型):
        if 武器类型 != '太刀':
            return 0
        else:
            return self.data3[self.等级] / 100

    # 17层结算一次
    刺伤层数 = 0
    刺伤浮动 = 1

    def 刺伤百分比(self, 武器类型):
        if 武器类型 != '太刀':
            return 0
        else:
            return self.刺伤浮动 * self.刺伤层数 / 17 * self.data5[self.等级]

    # [空中连斩]附加攻击力
    def 太刀附加(self, 武器类型):
        if 武器类型 != '太刀':
            return 0
        else:
            return self.data7[self.等级]


class 极诣·剑魂技能29(被动技能):
    名称 = '巨剑精通'
    所在等级 = 15
    等级上限 = 2
    基础等级 = 1
    关联技能 = ['所有']

    # 物理攻击力增加
    data1 = [0, 69, 84, 99, 114, 129, 144, 159, 174, 189, 204, 219, 234, 249, 264, 279, 294, 309, 324, 339, 354, 369, 384, 404, 424, 444, 464, 484, 504, 524, 544, 564, 584, 604, 624, 644, 664, 684, 704, 724, 744, 764, 784, 804, 824, 844, 864, 884, 904, 924, 944, 964, 984, 1004, 1024, 1044, 1064, 1084, 1104, 1124, 1144, 1164, 1184, 1204, 1224, 1244, 1264, 1284, 1304, 1324, 1344]
    # 魔法攻击力增加
    data2 = [0, 14, 31, 46, 60, 75, 90, 106, 121, 136, 151, 165, 181, 196, 211, 226, 242, 257, 271, 286, 302, 317, 332, 347, 363, 377, 392, 407, 422, 438, 453, 468, 482, 498, 513, 528, 543, 559, 574, 588, 603, 618, 634, 649, 664, 679, 693, 709, 724, 739, 754, 770, 785, 799, 814, 830, 845, 860, 875, 891, 905, 920, 935, 950, 966, 981, 996, 1010, 1026, 1041, 1056]
    # [里 · 鬼剑术]额外附加
    data3 = [0, 238, 300, 362, 424, 487, 549, 611, 673, 735, 798, 860, 922, 984, 1047, 1109, 1171, 1233, 1295, 1358, 1420, 1482, 1544, 1607, 1668, 1730, 1792, 1854, 1917, 1979, 2041, 2103, 2166, 2228, 2290, 2352, 2414, 2477, 2539, 2601, 2663, 2726, 2788, 2850, 2912, 2975, 3037, 3099, 3161, 3222, 3285, 3347, 3409, 3471, 3534, 3596, 3658, 3720, 3782, 3845, 3907, 3969, 4031, 4094, 4156, 4218, 4280, 4342, 4405, 4467, 4529]

    def 加成倍率(self, 武器类型):
        if 武器类型 != '巨剑':
            return 1.0
        else:
            return round(self.data1[self.等级] / 1000 + 1, 3)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率(self, 武器类型):
        if 武器类型 != '巨剑':
            return 1.0
        else:
            return round(self.data2[self.等级] / 1000 + 1, 3)

    def 里鬼附加百分比(self, 武器类型):
        if 武器类型 != '巨剑':
            return 0
        else:
            return self.data3[self.等级]


class 极诣·剑魂技能30(被动技能):
    名称 = '钝器精通'
    所在等级 = 15
    等级上限 = 2
    基础等级 = 1
    关联技能 = ['所有']
    # 物理攻击力增加
    data1 = [0, 73, 88, 103, 118, 133, 148, 163, 178, 193, 208, 223, 238, 253, 268, 283, 298, 313, 328, 343, 358, 373, 388, 408, 428, 448, 468, 488, 508, 528, 548, 568, 588, 608, 628, 648, 668, 688, 708, 728, 748, 768, 788, 808, 828, 848, 868, 888, 908, 928, 948, 968, 988, 1008, 1028, 1048, 1068, 1088, 1108, 1128, 1148, 1168, 1188, 1208, 1228, 1248, 1268, 1288, 1308, 1328, 1348]
    # 魔法攻击力增加
    data2 = [0, 14, 29, 44, 58, 73, 87, 102, 117, 132, 146, 160, 175, 189, 204, 219, 234, 248, 262, 277, 291, 306, 321, 336, 350, 364, 379, 393, 408, 423, 438, 452, 466, 481, 496, 510, 525, 540, 554, 568, 583, 598, 612, 627, 642, 657, 670, 685, 700, 714, 729, 744, 759, 772, 787, 802, 816, 831, 846, 861, 874, 889, 904, 918, 933, 948, 963, 976, 991, 1006, 1021]

    def 加成倍率(self, 武器类型):
        if 武器类型 != '钝器':
            return 1.0
        else:
            return round(self.data1[self.等级] / 1000 + 1, 3)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率(self, 武器类型):
        if 武器类型 != '钝器':
            return 1.0
        else:
            return round(self.data2[self.等级] / 1000 + 1, 3)


class 极诣·剑魂技能31(被动技能):
    名称 = '光剑精通'
    所在等级 = 15
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['所有']
    # 物理攻击力增加
    data1 = [0, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 245, 260, 275, 290, 305, 320, 335, 350, 365, 380, 395, 410, 430, 450, 470, 490, 510, 530, 550, 570, 590, 610, 630, 650, 670, 690, 710, 730, 750, 770, 790, 810, 830, 850, 870, 890, 910, 930, 950, 970, 990, 1010, 1030, 1050, 1070, 1090, 1110, 1130, 1150, 1170, 1190, 1210, 1230, 1250, 1270, 1290, 1310, 1330, 1350, 1370]
    # 魔法攻击力增加
    data2 = [0, 25, 38, 50, 63, 76, 88, 101, 113, 126, 139, 151, 164, 176, 189, 202, 214, 227, 239, 252, 265, 277, 290, 302, 315, 328, 340, 353, 365, 378, 391, 403, 416, 428, 441, 454, 66, 479, 491, 504, 517, 529, 542, 554, 567, 580, 592, 605, 617, 630, 630, 785, 800, 815, 831, 845, 860, 876, 890, 906, 921, 936, 951, 966, 981, 996, 1011, 1027, 1042, 1056, 1072]

    def 加成倍率(self, 武器类型):
        if 武器类型 != '光剑':
            return 1.0
        else:
            return round(self.data1[self.等级] / 1000 + 1, 3)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率(self, 武器类型):
        if 武器类型 != '光剑':
            return 1.0
        else:
            return round(self.data2[self.等级] / 1000 + 1, 3)


class 极诣·剑魂技能32(极诣·剑魂主动技能):
    hit数 = 2
    名称 = '空中连斩'
    备注 = '(一刀，TP为基础精通)'
    所在等级 = 5
    等级上限 = 11
    基础等级 = 1
    CD = 1.0
    TP成长 = 0.1
    TP上限 = 3
    数据 = [int(x*1.0) for x in [0, 180, 193, 204, 216, 228, 240, 253, 264, 276, 288, 300, 313, 324, 336, 348, 360, 373, 384, 396, 408, 420, 433, 444, 456, 468, 480, 493, 504, 516, 528, 540, 553, 564, 576, 588, 600, 613, 624, 636, 648, 660, 673, 684, 696, 708, 720, 733, 744, 756, 768, 780, 793, 804, 816, 828, 840, 853, 864, 876, 888, 900, 913, 924, 936, 948, 960, 973, 984, 996, 1008]]

    太刀附加 = 0

    def 等效百分比(self, 武器类型):
        if 武器类型 != '太刀':
            return self.数据[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率
        else:
            return (self.数据[self.等级] - 100 + self.太刀附加) * (1 + self.TP成长 * self.TP等级) * self.倍率 * 2 * 1.5

    def 穿云刺数量(self, 武器类型):
        return 1


class 极诣·剑魂技能33(被动技能):
    名称 = '神影手'
    所在等级 = 70
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['无']
    百分比 = 3760


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(极诣·剑魂技能'+str(i)+'())')
        i += 1
    except:
        i = -1

极诣·剑魂技能序号 = dict()
for i in range(len(技能列表)):
    极诣·剑魂技能序号[技能列表[i].名称] = i

极诣·剑魂一觉序号 = 0
极诣·剑魂二觉序号 = 21
极诣·剑魂三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        极诣·剑魂一觉序号 = 极诣·剑魂技能序号[i.名称]
    if i.所在等级 == 100:
        极诣·剑魂三觉序号 = 极诣·剑魂技能序号[i.名称]

极诣·剑魂护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        极诣·剑魂护石选项.append(i.名称)

极诣·剑魂符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        极诣·剑魂符文选项.append(i.名称)


class 极诣·剑魂角色属性(角色属性):

    实际名称 = '极诣·剑魂'
    角色 = '鬼剑士(男)'
    职业 = '剑魂'

    武器选项 = ['光剑', '巨剑', '钝器', '太刀', '短剑']

    类型选择 = ['物理百分比']

    类型 = '物理百分比'
    防具类型 = '轻甲'
    防具精通属性 = ['力量']
    武器类型 = '光剑'

    主BUFF = 1.82

    刀魂之卡赞 = 0

    流心刺状态 = 0
    流心跃状态 = 0

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(极诣·剑魂技能序号)

    def 技能等级加成(self, 加成类型, minLv, maxLv, lv, 可变=0):
        lv = int(lv)
        if self.装备描述 == 1:
            if 加成类型 == "所有":
                if minLv == maxLv:
                    return "Lv{} 技能等级+{}<br>".format(minLv, lv)
                else:
                    return "Lv{}-{} 技能等级+{}<br>".format(minLv, maxLv, lv)
            else:
                if minLv == maxLv:
                    return "Lv{} 主动技能等级+{}<br>".format(minLv, lv)
                else:
                    return "Lv{}-{} 主动技能等级+{}<br>".format(minLv, maxLv, lv)
        else:
            if self.刀魂之卡赞 > 0:
                if minLv <= 5 and maxLv >= 5:
                    self.刀魂之卡赞 = min(20, self.刀魂之卡赞 + lv)

            for i in self.技能栏:
                if i.名称 not in ['太刀精通', '巨剑精通', '短剑精通', '钝器精通']:
                    if i.所在等级 >= minLv and i.所在等级 <= maxLv:
                        if 加成类型 == '所有':
                            i.等级加成(lv)
                        else:
                            if i.是否主动 == 1:
                                i.等级加成(lv)
            if 可变 > 0:
                self.变换词条[可变-1] = [6, 2, 14 +
                                   (2 if 可变 > 1 else 4), 14 + (9 if 可变 > 1 else 17)]
        return ''

    def 被动倍率计算(self):

        if self.技能栏[self.技能序号['武器奥义']].等级 != 0:
            for i in ['太刀精通', '短剑精通', '巨剑精通', '光剑精通', '钝器精通']:
                if self.技能栏[self.技能序号[i]].等级 != 0:
                    self.技能栏[self.技能序号[i]
                             ].等级 += (self.技能栏[self.技能序号['武器奥义']].等级 + 1)
                if self.武器类型 not in i:
                    self.技能栏[self.技能序号[i]].关联技能 = ['无']

        super().被动倍率计算()

        self.技能栏[self.技能序号['万剑归宗(穿云刺)']
                 ].等级 = self.技能栏[self.技能序号['万剑归宗(终结)']].等级
        self.技能栏[self.技能序号['空中连斩']
                 ].太刀附加 = self.技能栏[self.技能序号['太刀精通']].太刀附加(self.武器类型)

        if self.流心跃状态 == 1:
            self.技能栏[self.技能序号['流心跃']].武器倍率['钝器'] = 1.2  # 空中增伤20%

        if self.流心刺状态 == 1:
            self.技能栏[self.技能序号['流心刺']].武器倍率['短剑'] = 2  # 空中2段

            self.技能栏[self.技能序号['流心刺']].武器倍率['太刀'] = 2  # 空中2段
            self.技能栏[self.技能序号['流心刺']].hit数 = 2

            self.技能栏[self.技能序号['流心刺']].武器倍率['巨剑'] = 2  # 空中1段，伤害为200%

            self.技能栏[self.技能序号['流心刺']].武器倍率['光剑'] = 2  # 空中2段

        无形剑意 = self.技能栏[self.技能序号['无形剑意']]
        if 无形剑意.等级 != 0:
            基础倍率 = 无形剑意.加成倍率(self.武器类型)
            if self.武器类型 == '短剑':
                self.技能栏[self.技能序号['流心刺']].被动倍率 /= 基础倍率
                if self.流心刺状态 == 1:
                    self.技能栏[self.技能序号['流心刺']].被动倍率 *= 1 + 3 * \
                        (无形剑意.短剑流心刺空中[无形剑意.等级] / 100) / 2  # 空中2段
                else:
                    self.技能栏[self.技能序号['流心刺']].被动倍率 *= 1 + 2 * \
                        (无形剑意.短剑流心刺[无形剑意.等级] / 100) / 3  # 地面2 + 1段

            if self.武器类型 == '太刀':
                self.技能栏[self.技能序号['流心跃']].被动倍率 /= 基础倍率
                self.技能栏[self.技能序号['流心升']].被动倍率 /= 基础倍率

                self.技能栏[self.技能序号['流心跃']].hit数 += 5
                self.技能栏[self.技能序号['流心跃']].被动倍率 *= 1 + \
                    (无形剑意.太刀流心跃[无形剑意.等级] / 100) * 5 / (2 * 0.5)

                self.技能栏[self.技能序号['流心升']].hit数 += 4
                self.技能栏[self.技能序号['流心升']].被动倍率 *= 1 + 4 * \
                    (无形剑意.太刀流心升[无形剑意.等级] / 100) / (3 * 0.8)

            if self.武器类型 == '钝器':
                self.技能栏[self.技能序号['流心刺']].被动倍率 /= 基础倍率
                self.技能栏[self.技能序号['流心刺']].被动倍率 *= 1 + \
                    (无形剑意.钝器流心刺[无形剑意.等级] / 100) / (2 * 1.25)

            if self.武器类型 == '巨剑':
                self.技能栏[self.技能序号['流心刺']].被动倍率 /= 基础倍率

                if self.流心刺状态 == 1:
                    # 空中1段，伤害为200%
                    self.技能栏[self.技能序号['流心刺']
                             ].被动倍率 *= (无形剑意.巨剑流心刺空中[无形剑意.等级] / 100) / 2
                else:
                    self.技能栏[self.技能序号['流心刺']].被动倍率 *= ((2 + 1) * (
                        无形剑意.巨剑流心刺下斩[无形剑意.等级] / 100) + (无形剑意.巨剑流心刺旋风[无形剑意.等级] / 100) * 3) / (2 + 1)
                    # 基础：地面2 + 1段  加成后：地面1段(200%伤害) + 下斩1段 + 旋风3段

            if self.武器类型 == '光剑':
                self.技能栏[self.技能序号['流心升']].被动倍率 /= 基础倍率
                self.技能栏[self.技能序号['流心升']].被动倍率 *= 1 + \
                    (无形剑意.光剑流心升[无形剑意.等级] / 100) / (3 * 0.8)

    def 数据计算(self, x=0, y=-1):
        self.预处理()
        # 初步计算
        技能释放次数 = self.技能释放次数计算()
        技能单次伤害 = self.技能单次伤害计算(y)

        # 剑魂穿云刺数量计算
        if '/CD' in self.次数输入[self.技能序号['万剑归宗(穿云刺)']]:
            穿云刺数量 = 0
            for i in self.技能栏:
                if i.是否主动 == 1:
                    if 技能释放次数[self.技能序号[i.名称]] <= 1:
                        穿云刺数量 += i.穿云刺数量(self.武器类型) * 技能释放次数[self.技能序号[i.名称]]
                    else:
                        穿云刺数量 += i.穿云刺数量(self.武器类型) * \
                            int(技能释放次数[self.技能序号[i.名称]] * 0.6)
            技能释放次数[self.技能序号['万剑归宗(穿云刺)']] = eval(self.次数输入[self.技能序号['万剑归宗(穿云刺)']].replace('/CD', str(穿云刺数量)))

        技能总伤害 = self.技能总伤害计算(技能释放次数, 技能单次伤害)

        # 剑魂特殊效果
        # 极神剑术
        if self.技能栏[self.技能序号['极神剑术']].等级 != 0:

            极神剑术序号 = self.技能序号['极神剑术']
            极神剑术 = self.技能栏[极神剑术序号]

            伤害整合 = 0

            技能释放次数[极神剑术序号] = 1

            a = self.技能序号['破军升龙击']
            b = self.技能栏[a]
            if 技能总伤害[a] != 0:
                temp = 技能总伤害[a] * b.极神剑术占比(self.武器类型) * 极神剑术.附加倍率('破军升龙击')

                伤害整合 += temp / (0.7 if self.装备检查('奔流不息之狂风') else 1.0)

            a = self.技能序号['猛龙断空斩']
            b = self.技能栏[a]
            if 技能总伤害[a] != 0:
                temp = 技能总伤害[a] * b.极神剑术占比(self.武器类型) * \
                    b.旋风攻击次数 * 极神剑术.附加倍率('猛龙断空斩')

                伤害整合 += temp / (0.7 if self.装备检查('奔流不息之伽蓝') else 1.0)

            a = self.技能序号['幻影剑舞']
            b = self.技能栏[a]
            if 技能总伤害[a] != 0:
                temp = 技能总伤害[a] * b.极神剑术斩击占比(self.武器类型) * \
                    b.影子斩击次数 * 极神剑术.附加倍率('幻影剑舞斩击')
                if self.武器类型 != '钝器':
                    剑气次数 = (4 if self.武器类型 == '短剑' else 3)
                    temp += 技能总伤害[a] * \
                        b.极神剑术剑气占比(self.武器类型) * 剑气次数 * 极神剑术.附加倍率('幻影剑舞剑气')
                else:
                    temp += 技能总伤害[a] * \
                        b.极神剑术剑气占比(self.武器类型) * 4.2 * 极神剑术.附加倍率('幻影剑舞钝器')

                伤害整合 += temp / (0.7 if (self.装备检查('奔流不息之岁月')
                                or self.装备检查('英明循环之生命')) else 1.0)

            a = self.技能序号['极神剑术破空斩']
            b = self.技能栏[a]
            if 技能总伤害[a] != 0:
                技能总伤害[a] += 技能总伤害[a] * \
                    b.极神剑术占比(self.武器类型) * 极神剑术.附加倍率('极神剑术破空斩')
                # 该伤害统计在本体技能内

            a = self.技能序号['极神剑术流星落']
            b = self.技能栏[a]
            if 技能总伤害[a] != 0:
                倍率 = 技能总伤害[a] / b.等效百分比(self.武器类型)
                temp = 倍率 * 3 * 极神剑术.流星之天剑[极神剑术.等级] * b.流星之天剑倍率
                if self.武器类型 == '太刀':
                    b.hit数 += 3
                    b.流星之天剑刺伤层数 = 极神剑术.天剑刺伤层数()
                elif self.武器类型 == '巨剑':
                    temp *= 1 + 极神剑术.巨剑流星之天剑[极神剑术.等级] / 100
                elif self.武器类型 == '钝器':
                    temp += 倍率 * 3 * 74  # 极神剑术.钝器流星之天剑[极神剑术.等级]
                elif self.武器类型 == '光剑':
                    temp += 倍率 * 3 * 74  # 极神剑术.光剑流星之天剑[极神剑术.等级]
                # 已知BUG,钝器光剑追加的额外天剑伤害极低,约只有74%
                # if self.版本 == 'GF':
                #     伤害整合 += temp / (1.2 if ('永恒不息之路[2]' in self.套装栏) else 1.0)
                # else:
                伤害整合 += temp

            技能总伤害[极神剑术序号] += 伤害整合

        # 其它伤害
        通用倍率 = 1.0

        for name in ['光剑精通', '短剑精通', '巨剑精通', '太刀精通', '钝器精通', '无我剑气', '极鬼剑术斩铁式', '极鬼剑术斩钢式', '无形剑意']:
            通用倍率 *= self.技能栏[self.技能序号[name]].加成倍率(self.武器类型)

        通用倍率 *= 1 + self.白兔子技能 * 0.20 + self.斗神之吼秘药 * 0.12  # 默认无宠物

        # 里鬼附加伤害
        a = self.技能序号['里鬼剑术']
        b = self.技能栏[a]
        if 技能总伤害[a] != 0:
            倍率 = 技能总伤害[self.技能序号['里鬼剑术']] / b.等效百分比(self.武器类型) / b.被动倍率
            if self.武器类型 == '巨剑':
                技能释放次数[self.技能序号['巨剑精通']] = 1
                技能总伤害[self.技能序号['巨剑精通']] += self.技能栏[self.技能序号['巨剑精通']
                                                     ].里鬼附加百分比(self.武器类型) * 通用倍率 * 倍率
            elif self.武器类型 == '短剑':
                技能释放次数[self.技能序号['短剑精通']] = 1
                技能总伤害[self.技能序号['短剑精通']] += self.技能栏[self.技能序号['短剑精通']
                                                     ].里鬼附加百分比(self.武器类型) * 通用倍率 * 倍率

        # 太刀刺伤
        if self.武器类型 == '太刀':

            总hit = 0

            a = self.技能序号['太刀精通']
            b = self.技能栏[a]

            for i in self.技能栏:
                if i.是否主动 == 1:
                    释放次数 = 技能释放次数[self.技能序号[i.名称]]
                    总hit += i.hit数 * 释放次数
                    b.刺伤层数 += i.额外刺伤层数(self.武器类型) * 释放次数

            b.刺伤层数 += 总hit * b.刺伤概率(self.武器类型)

            技能释放次数[a] = 1
            技能总伤害[a] = b.刺伤百分比(self.武器类型) * 通用倍率 * self.伤害指数

        # 神影手
        if self.技能栏[self.技能序号['拔刀斩']].触发神影手 == 1 and 技能总伤害[self.技能序号['拔刀斩']] != 0:

            技能释放次数[self.技能序号['神影手']] = 技能释放次数[self.技能序号['拔刀斩']]

            神影手倍率 = 1.0

            for name in ['光剑精通', '短剑精通', '巨剑精通', '太刀精通', '钝器精通']:
                神影手倍率 *= self.技能栏[self.技能序号[name]].加成倍率(self.武器类型)

            比例 = self.技能栏[self.技能序号['神影手']].百分比 * self.伤害指数 * \
                神影手倍率 / self.主BUFF / 技能单次伤害[self.技能序号['拔刀斩']]

            技能总伤害[self.技能序号['神影手']] = 比例 * 技能总伤害[self.技能序号['拔刀斩']]

        # 返回结果
        return self.数据返回(x, 技能释放次数, 技能总伤害)


class 极诣·剑魂(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 极诣·剑魂角色属性()
        self.角色属性A = 极诣·剑魂角色属性()
        self.角色属性B = 极诣·剑魂角色属性()
        self.一觉序号 = 极诣·剑魂一觉序号
        self.二觉序号 = 极诣·剑魂二觉序号
        self.三觉序号 = 极诣·剑魂三觉序号
        self.护石选项 = deepcopy(极诣·剑魂护石选项)
        self.符文选项 = deepcopy(极诣·剑魂符文选项)

    def 界面(self):
        super().界面()

        self.流心刺状态 = QCheckBox('空中释放流心刺', self.main_frame2)
        self.流心刺状态.resize(120, 20)
        self.流心刺状态.move(325, 595)
        self.流心刺状态.setStyleSheet(复选框样式)
        self.流心刺状态.setToolTip('除钝器外其它武器生效')

        self.流心跃状态 = QCheckBox('空中释放流心跃', self.main_frame2)
        self.流心跃状态.resize(120, 20)
        self.流心跃状态.move(325, 625)
        self.流心跃状态.setStyleSheet(复选框样式)
        self.流心跃状态.setToolTip('仅钝器生效')

        self.太刀刺伤浮动 = MyQComboBox(self.main_frame2)
        for i in range(100, 136):
            self.太刀刺伤浮动.addItem('太刀刺伤浮动:' + str(i) + '%')
        self.太刀刺伤浮动.resize(135, 20)
        self.太刀刺伤浮动.move(150, 620)
        self.太刀刺伤浮动.setToolTip('默认刺伤为期望值')

        self.职业存档.append(('流心刺状态', self.流心刺状态, 0))
        self.职业存档.append(('流心跃状态', self.流心跃状态, 0))
        self.职业存档.append(('太刀刺伤浮动', self.太刀刺伤浮动, 1))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)
        if self.流心刺状态.isChecked():
            属性.流心刺状态 = 1
        if self.流心跃状态.isChecked():
            属性.流心跃状态 = 1
        属性.技能栏[属性.技能序号['太刀精通']].刺伤浮动 = 1 + self.太刀刺伤浮动.currentIndex() * 0.01
